Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

145
Views
Hojas de Google: extraiga números con sus unidades de medida separadas por un espacio en blanco, por ejemplo, "20 km"

Tengo un script para una función personalizada que extrae números con sus unidades de medida:

 /** * @customfunction */ function EXTRACTMEASUREMENT(input) { // match all words which starts with a number var result = input.match(/\d+[a-zA-Zα-ωΑ-Ω]+\S*/g) // combine array into a string separated with spaces result = result.join(' '); // Remove special characters(except whitespace) in the string result = result.replace(/[^a-zA-Zα-ωΑ-Ω0-9\s]/g, '') return result; }

Por ejemplo, tengo un texto en H42 y pongo la función en I42. Funciona así:

ingrese la descripción de la imagen aquí

producción

Pero es que si pongo en H42 un número pero seguido de un espacio y luego la unidad de medida, la función no lo detecta y por lo tanto ni siquiera lo extrae. Ver ejemplo:

ingrese la descripción de la imagen aquí

Como puede ver, "12 kg" y "1 L" tienen un espacio en blanco entre ellos. Entonces, la función solo extrae "50gr", que no está separado por un espacio en blanco.

¿Qué puedo hacer para que la función personalizada devuelva los números con sus unidades de medida incluso si están separados por un espacio en blanco? quiero que vuelva

12kg 1L 50gr

al igual que la segunda imagen adjunta.

Solo soy un principiante en esto, así que no sé cómo escribir código. Sería muy útil si pudiera hacer las modificaciones adecuadas a mi script y luego pegarlo en las respuestas.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Probar

 =arrayformula(substitute(transpose(query(flatten(split( REGEXREPLACE(A1,"([0-9.,/]+[ ]{0,1}[a-zA-Z1-3/.\-""]+)","♣♦$1♣") ,"♣")),"select * where Col1 like '♦%' ")),"♦",""))

o con resultado en una celda

 =substitute(textjoin(" - ",true,query(flatten(split( REGEXREPLACE(A1,"([0-9.,/]+[ ]{0,1}[a-zA-Z1-3/.\-""]+)","♣♦$1♣") ,"♣")),"select * where Col1 like '♦%' ")),"♦","")

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!